home *** CD-ROM | disk | FTP | other *** search
- Path: user2.mnsinc.com!huang
- From: huang@mnsinc.com (Szu-Wen Huang)
- Newsgroups: comp.lang.c++,comp.lang.c,comp.object,comp.software-eng
- Subject: Re: Portability of code & skills (Beware of "C" Hackers etc)
- Followup-To: comp.lang.c++,comp.lang.c,comp.object,comp.software-eng
- Date: 21 Mar 1996 20:49:34 GMT
- Organization: Monumental Network Systems
- Message-ID: <4isfcu$p09@news1.mnsinc.com>
- References: <4ikb6kINN1is@mayne.ugrad.cs.ubc.ca> <DoI5Ao.AyJ@assip.csasyd.oz> <EJH.96Mar19163745@larry.gsfc.nasa.gov> <3150415E.6396@sdt.com> <4ip5om$s9@bughouse.imonics.com>
- NNTP-Posting-Host: user2.mnsinc.com
- X-Newsreader: TIN [version 1.2 PL2]
-
- Imonics Corporation (rcook@imonics.com) wrote:
-
- : I think Unix and C are a success because they are deliberately
- : obscure. All those "computer science" graduates just love
- : knowing a secret code with which they can amaze people. They
- : don't WANT it to be easy to understand; that would mean that
- : other people could and would read their code and be able to do
- : the things they do. That would weaken their club membership
- : (sort of like letting in girls is to 7-year-olds).
-
- That's not really fair. In the beginning, only countries can
- afford computers. Then big businesses. Then scientists. Unix
- was born at a time when scientists were beginning to buy computers
- to aid their work, and really heralded what we now call general-
- purpose computing. Unix fit quite well to this task, despite its
- shortcomings in architecture. Unix was never meant to be for non-
- experts, that's quite clear. It is not so much a deliberate "club
- membership" attempt as it is simply easier for experts to use
- expert-talk and expert-tools. You are twisting the motive in your
- post, because the objective is to be lean and mean, not to be
- deliberately obscure. The obscurity was a necessity when the
- machines had such limited capacities.
-
- C was born under the same considerations. If C was verbose like
- COBOL, for instance, you could only load so much fewer lines into
- memory. Simple as that.
-
- : The portability issue is/was partially myth; it gave rise to
- : non-computer people (and some who should have known better) saying
- : things like "Write it in C so it will be portable". That's
- : horse manure. It is easier to WRITE portable code in C because
- : there are more C compilers, but that doesn't mean that C code
- : is inherently more portable. The other thing about portability
- : is the commercial part of the myth -- companies don't really
- : want to change machines and operating systems every few years,
- : that's for people who regard them as toys.
-
- The quality (including portability) is only as good as the programmer,
- obviously. As a language, C is small, and makes it easier to write
- conforming compilers for. C is not the only portable language, of
- course.
-
- : This SAME ARGUMENT (that it isn't necessary today, but was "back
- : when) has been made for AT LEAST 10 years, and perhaps 15. The
- : problem is not that people need to squeeze performance out of
- : slow machines -- they have to do that sometimes, but that isn't
- : the problem. The problem is that they use that argument to justify
- : poor engineering practice even when performance is not an issue.
- : Witness the people who will do micro-second-saving-practices when
- : writing a user interface, where the next thing to happen is waiting
- : for keystrokes. Witness people who will argue against splitting
- : things into subroutines "because of performance" without a single
- : minute spent evaluating whether there are any performance problems
- : to be solved.
-
- Software and hardware engineering have been becoming more and more
- quantitative and scientific. More and more people are starting to
- profile before optimizing. I don't see what you're complaining about.
- There will always be poor engineers.
-
- : If I find a person who will engineer a piece of software, measure the
- : performance, and then examine which pieces require optimization in
- : order to speed up the system; if this person will document what he
- : is doing so that those who come later can figure it out, then he can
- : put as many gotos, obscure pointer arithmetic, and etc. into his code
- : as will get the job done. I won't object, and I won't call it hacking.
-
-